

#ifndef __UNOTIFY_H
#define __UNOTIFY_H


#include "user_type.h"



// 主题枚举
typedef enum center_theme
{
    THEME_TIMER,
    THEME_TEST,


    THEME_END,

}center_theme;


//订阅时需要提供的钩子函数，返回1表示继续订阅，返回0表示不再订阅,
//订阅者需要自行保存数据，发布者在发布完成后将会销毁 data
typedef int8_t(*theme_Callback)(void *data,unsigned int size);


typedef struct center_information
{
    //订阅的主题
    center_theme id;
    
    //需要执行的回调
    theme_Callback cb;
    
    void *next;
}center_information;







//消息中心初始化
void center_init(void);

//订阅消息
//id 主题 ;cb钩子函数 ;hd 订阅数据存储，调用方提供;
int8_t center_subscription(center_theme id,theme_Callback cb,center_information* hd);

//发布消息
//id 主题; data 消息;
int8_t center_release(center_theme id,void *data,unsigned int size);








#endif


